package com.chengqj.dynamic.proxy;

import java.lang.reflect.Proxy;

/**
 * @program: proxy
 * @description: 动态代理测试类
 * @author: chengqj
 * @create: 2018-07-27 10:22
 **/
public class DynamicProxyTest {
    public static void main(String[] args) {
        //ClassLoader loader:指定当前目标对象使用的类加载器,获取加载器的方法是固定的
        //Class<?>[] interfaces:指定目标对象实现的接口的类型,使用泛型方式确认类型
        //InvocationHandler h:指定动态代理类，执行目标对象的方法时,会触发事件处理器的方法
        Person proxyPerson = (Person) Proxy.newProxyInstance(Person.class.getClassLoader(),
                new Class[]{Person.class}, new DynamicProxy(new ChengqjPerson()));
        System.out.println(proxyPerson.getClass());
        proxyPerson.findLove();
    }
}
